With the advent of networked computing systems, such as those accessible over the Internet, authentication has become an important issue to restrict access to particular data to properly authorized users. For example, for an online banking web site, just an accountholder may be permitted to access financial information of the accountholder. Besides ensuring that others do not have access to a given user's data, authentication should also be robust against hacking attempts by malicious parties attempting to gain access to this data.